#ifdef HERZELEID_DESKTOP
 #if _MSC_VER
  #pragma once
 #endif

 #ifndef __HERZELEID_CORECURSOR_INCLUDED__
  #define __HERZELEID_CORECURSOR_INCLUDED__
  #include "HerzeleidCoreCursorType.hxx"

// Defines a cursor (visual pointer) object.
HerzeleidUICoreNamespaceBegin class CoreCursor
{
protected:

	UInt32 m_uId;				// The resource ID of the cursor.
	CoreCursorType m_eType;		// The type of the cursor.

public:

	CoreCursor( 
		_In_ CoreCursorType const &eType = CoreCursorType::Arrow,		// The resource ID of the cursor.
		UInt32 const &uId = 0											// The type of the cursor.
		);

	DeclGetPropOnly( UInt32Const, Id );						// Gets the resource ID of the cursor.
	DeclGetPropOnly( CoreCursorTypeConst, Type );			// Gets the type of the cursor.
	inline DeclConstTypedGetterFor( UInt32Const, Id ) { return m_uId; }				// Gets the resource ID of the cursor.
	inline DeclConstTypedGetterFor( CoreCursorTypeConst, Type ) { return m_eType; }	// Gets the type of the cursor.

} HerzeleidUICoreNamespaceEnd; 

HerzeleidUICoreNamespaceBegin
	TinyTypeDecl( CoreCursor );
HerzeleidUICoreNamespaceEnd;
 #endif // !HERZELEID_COREWINDOWEVENTARGS_INCLUDED__
#endif // !HERZELEID_DESKTOP
